package com.vict.bean.pay.ao;

import com.alibaba.fastjson.annotation.JSONField;

import com.vict.framework.bean.PageRequest;
import com.vict.framework.fastjsonserializer.*;
import com.vict.framework.pay.entity.PayOrder;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.sql.Timestamp;

@Data
public class SelectPayOrderAO extends PageRequest {

    @ApiModelProperty(value="payDtoId")
    private String payDtoId;

    @ApiModelProperty(value="金额Begin")
    @JSONField(serializeUsing = DecimalSerializer.class, deserializeUsing = DecimalDeserializer.class)
    private BigDecimal moneyBegin;

    @ApiModelProperty(value="金额end")
    @JSONField(serializeUsing = DecimalSerializer.class, deserializeUsing = DecimalDeserializer.class)
    private BigDecimal moneyEnd;

    @ApiModelProperty(value="支付状态")
    @JSONField(serializeUsing = EnumSerializer.class, deserializeUsing = EnumDeserializer.class)
    private PayOrder.PayStatus payStatus;

    @ApiModelProperty(value="支付方式")
    @JSONField(serializeUsing = EnumSerializer.class, deserializeUsing = EnumDeserializer.class)
    private PayOrder.PayType payType;

    @ApiModelProperty(value="创建时间begin")
    @JSONField(serializeUsing = TimestampSerializer.class, deserializeUsing = TimestampDeserializer.class)
    private Timestamp startTimeBegin;

    @ApiModelProperty(value="创建时间end")
    @JSONField(serializeUsing = TimestampSerializer.class, deserializeUsing = TimestampDeserializer.class)
    private Timestamp startTimeEnd;

    @ApiModelProperty(value="支付成功时间begin")
    @JSONField(serializeUsing = TimestampSerializer.class, deserializeUsing = TimestampDeserializer.class)
    private Timestamp successTimeBegin;

    @ApiModelProperty(value="支付成功时间end")
    @JSONField(serializeUsing = TimestampSerializer.class, deserializeUsing = TimestampDeserializer.class)
    private Timestamp successTimeEnd;

    @ApiModelProperty(value="取消时间begin")
    @JSONField(serializeUsing = TimestampSerializer.class, deserializeUsing = TimestampDeserializer.class)
    private Timestamp cancelTimeBegin;

    @ApiModelProperty(value="取消时间end")
    @JSONField(serializeUsing = TimestampSerializer.class, deserializeUsing = TimestampDeserializer.class)
    private Timestamp cancelTimeEnd;

    @ApiModelProperty(value="退款标记")
    @JSONField(serializeUsing = IntegerSerializer.class, deserializeUsing = IntegerDeserializer.class)
    private Integer isBack;
}
